const koaBody = require('koa-body');
const cors = require('@koa/cors')
const path = require('path')
const AwesomeStatic = require('awesome-static') // 加载静态资源
const { getAllDir } = require('../utils/utils')

/* 遍历所有js文件获取中间件 */
let wareDirs = getAllDir(path.join(__dirname, '../middlewares'), false, /index.js$/)

module.exports = app => {
  app.use(async (ctx, next) => {
    ctx.set('Access-Control-Allow-Origin', "http://localhost:8022") // 是对域名的限制
    ctx.set('Access-control-Allow-Methods', 'PUT,POST,GET') // 是支持跨域请求的方法
    // ctx.set('Access-control-Allow-Headers', 'X-Requested-With,content-type,Authorization') // 服务器支持的所有头信息字段
    await next()
  })
  /* 加载静态资源 */
  app.use(AwesomeStatic(path.join(__dirname, '../../web'), {
    route: 'web', // 设置根路由
    allowMethods: ['GET'] // GET | HEAD | POST | PUT | DELETE
  }))

  app.use(cors()) // 跨域
  app.use(koaBody({ multipart: true, })) // 解析post以及form-data传参

  wareDirs.forEach(dir => {
    app.use(require(dir))
  })
}
